package com.dhecp.core.utils.qywx;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

/**
 * @ClassName 企业微信日程实体
 * @Description TODO
 * @Author alula
 * @Date 2022-03-02 16:17
 */
public class ScheduleEntity implements Serializable {
    private String scheduleId = ""; //日程ID。更新时需要提供
    private String organizer;//组织者不多于64字节（必填）
    private long startTime;//日程开始时间，Unix时间戳（必填）
    private long endTime;//日程结束时间，Unix时间戳（必填）
    private List<String> userIds = new ArrayList<>();//日程参与者列表。最多支持2000人（必填）
    private String summary = "";//日程标题。0 ~ 128 字符
    private String description = "";//日程描述不多于512个字符
    private String location = "";//日程地址不多于128个字符
    private String calendarId = "";//日程所属日历ID
    private int remind = 1;//是否需要提醒。0-否；1-是
    private int repeat = 0;//是否重复日程。0-否；1-是
    private int remindSecond = 900;//日程开始（start_time）前多少秒提醒，默认0 - 事件开始时 300 - 事件开始前5分钟 900 - 事件开始前15分钟 3600 - 事件开始前1小时 86400 - 事件开始前1天
    private int repeatType = 0;//重复类型，当is_repeat为1时有效。目前支持如下类型：0 - 每日 1 - 每周 2 - 每月 5 - 每年 7 - 工作日
    private long repeatUntil = 0;//重复结束时刻，Unix时间戳,不填或填0表示一直重复
    private int customRepeat = 0;//是否自定义重复。0-否；1-是
    private int repeatInterval= 1;//重复间隔(仅当指定为自定义重复时有效)
    private List<Integer> repeatDayOfWeek = null;//每周周几重复,取值范围：1 ~ 7，分别表示周一至周日
    private List<Integer> repeatDayOfMonth = null;//每月哪几天重复,取值范围：1 ~ 31，分别表示1~31号
    private int timeZone = 8;//时区。默认为北京时间东八区 取值范围：-12 ~ +12
    private boolean skipAttendees = false;//忽略掉attendees参数，只更新其他参数,默认值是false

    public String getScheduleId() {
        return scheduleId;
    }

    public void setScheduleId(String scheduleId) {
        this.scheduleId = scheduleId;
    }

    public String getOrganizer() {
        return organizer;
    }

    public void setOrganizer(String organizer) {
        this.organizer = organizer;
    }

    public long getStartTime() {
        return startTime;
    }

    public void setStartTime(long startTime) {
        this.startTime = startTime;
    }

    public long getEndTime() {
        return endTime;
    }

    public void setEndTime(long endTime) {
        this.endTime = endTime;
    }

    public List<String> getUserIds() {
        return userIds;
    }

    public void setUserIds(List<String> userIds) {
        this.userIds = userIds;
    }

    public String getSummary() {
        return summary;
    }

    public void setSummary(String summary) {
        this.summary = summary;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    public String getLocation() {
        return location;
    }

    public void setLocation(String location) {
        this.location = location;
    }

    public String getCalendarId() {
        return calendarId;
    }

    public void setCalendarId(String calendarId) {
        this.calendarId = calendarId;
    }

    public int getRemind() {
        return remind;
    }

    public void setRemind(int remind) {
        this.remind = remind;
    }

    public int getRepeat() {
        return repeat;
    }

    public void setRepeat(int repeat) {
        this.repeat = repeat;
    }

    public int getRemindSecond() {
        return remindSecond;
    }

    public void setRemindSecond(int remindSecond) {
        this.remindSecond = remindSecond;
    }

    public int getRepeatType() {
        return repeatType;
    }

    public void setRepeatType(int repeatType) {
        this.repeatType = repeatType;
    }

    public long getRepeatUntil() {
        return repeatUntil;
    }

    public void setRepeatUntil(long repeatUntil) {
        this.repeatUntil = repeatUntil;
    }

    public int getCustomRepeat() {
        return customRepeat;
    }

    public void setCustomRepeat(int customRepeat) {
        this.customRepeat = customRepeat;
    }

    public int getRepeatInterval() {
        return repeatInterval;
    }

    public void setRepeatInterval(int repeatInterval) {
        this.repeatInterval = repeatInterval;
    }

    public List<Integer> getRepeatDayOfWeek() {
        return repeatDayOfWeek;
    }

    public void setRepeatDayOfWeek(List<Integer> repeatDayOfWeek) {
        this.repeatDayOfWeek = repeatDayOfWeek;
    }

    public List<Integer> getRepeatDayOfMonth() {
        return repeatDayOfMonth;
    }

    public void setRepeatDayOfMonth(List<Integer> repeatDayOfMonth) {
        this.repeatDayOfMonth = repeatDayOfMonth;
    }

    public int getTimeZone() {
        return timeZone;
    }

    public void setTimeZone(int timeZone) {
        this.timeZone = timeZone;
    }

    public boolean getSkipAttendees() {
        return skipAttendees;
    }

    public void setSkipAttendees(boolean skipAttendees) {
        this.skipAttendees = skipAttendees;
    }
}
